1. Field of the Invention
The present invention relates generally to digital data storage systems and more particularly to an AT interface architecture employing state machines for use in a digital data storage system. More particular still, the invention relates to a flash solid state memory system that employs the AT interface architecture comprising state machines.
2. Description of the Related Art
Magnetic disk drives have been widely accepted in the computer industry and are used for storing large amounts of data. Over the years, magnetic disk drives have decreased in size while increasing in operational speed and in the amount of data that can be stored on the magnetic media. Magnetic disk drives have associated with them a seek latency time which is associated with the time necessary to move the desired transducer to the desired track or cylinder on the magnetic media for the purpose of recovering or writing data to and from the magnetic media. In addition, there is a rotational latency associated with waiting for the desired data sector to pass underneath the transducer once the transducer is located on the desired track. Magnetic disk drives also have the associated problems of relying on mechanical hardware for locating the transducer at a specific location with regards to the magnetic media and for maintaining the rotational speed of the magnetic media at some constant value. The mechanical hardware is affected by the normal wear and tear associated with mechanical devices. Further, magnetic disk drives have employed various track following servo systems for maintaining the transducer on a desired track once the transducer reaches that desired track. Finally, the magnetic disk drive tracks are divided into a fixed number of sectors where each sector stores a fixed number of data bytes. As a rule, magnetic disk drive systems will write a complete sector each time a sector is written. Where the data is less than a full sector the data is padded with zeros to fill up the sector. This is to say that if the sector length is 512 bytes, whenever a sector is written 512 bytes of data will be written into that sector. The requirements of writing a full sector every time a sector is written means that a substantial portion of the magnetic surface may be allocated to contain filler data rather than useful data. Finally, it can readily be realized that the data would also be recovered from the magnetic disk drive in sector lengths and, therefore, a full sector must be read from the disk regardless of the actual amount of useful data that was recorded in that sector.
With the advent of solid state memories, attempts have been made to emulate the magnetic disk drives by use of solid state memories in place of the magnetic media. Examples of such emulations are found in U.S. Pat. No. 4,642,759 entitled "Bubble Memory Disk Emulation System" and U.S. Pat. No. 5,131,089 entitled "Solid State Disk Drive Emulation".
The ideal system would use a solid state memory that is nonvolatile such as the above-referenced bubble memory or the solid state memory with its own power supply to maintain the stored data even though power is turned off to the drive. However, each of these solid state memories each have their own advantages and disadvantages which must be weighed in selecting which solid state memory should and could be used in a specific design.
To have a solid state drive emulate a magnetic disk drive, the solid state storage media must be transparent to the host. Ideally, the solid state drive would accept the same commands and data formats as the magnetic disk drive such that no change in programming or system configuration need be done within the host. A disadvantage associated with most solid state memories is the time necessary to write into the memory. The slow write speed is a major reason why the solid state drives emulating magnetic disk drives have not been more widely accepted and marketed within the industry.
At present, both in magnetic disk drives and in flash disk drives, a microcontroller is employed for controlling the operation of the storage system. One of the functions of the microcontroller is to control the transfer of data across the host interface between the host processor and the storage media within the drive system. This requires that the microprocessor dedicate resources to transfer data between the host computer and the storage system across the interface in response to READ and WRITE commands. This requirement limits the microprocessor's availability to perform other functions and, therefore, results in a limitation on the overall system performance of the storage system. In magnetic disk drive storage systems, some attempts have been made to unburden the microprocessor by transferring some of the functions of the microprocessor to state machines or to have a two microprocessors involved in performing the functions thereby reducing the workload on each microprocessor and allowing two functions to be in process at the same time. In particular, the flash solid state drive system requires the microprocessor to be involved in housekeeping operations with regard to the flash memory, as well as controlling the reading and writing of data from the memory buffer to the flash memory itself. This increased responsibility on the microprocessor further reduces the system performance due to the time necessary to perform the increased functions allocated to the microprocessor.